/* 学习目标：掌握-泛型工具的使用 - Partial、 Readonly  */

// Partial
// 作用： 将对象的属性，全部转为可选属性
// 语法： Partial<对象类型>

// Readonly
// 作用： 将对象的属性，全部转为只读属性
// 语法： Readonly<对象类型>

type Person = {
  name: string;
  age: number;
  gender: string;
  gender2: string;
  gender3: string;
  gender4: string;
  gender5: string;
};

// Partial： 将对象类型所有的属性，转为可选属性
const formData: Partial<Person> = {
  name: "123",
  age: 17,
  gender: "男",
};

// Readonly： 将对象类型所有的属性，转为只读属性
type Xxxx = {
  baseUrl: string;
  url: string;
};

const AxiosConfig: Readonly<Xxxx> = {
  baseUrl: "xxxxxxxxx",
  url: "xxx",
};
// ❌
AxiosConfig.baseUrl = "123";
// ❌
AxiosConfig.url = "123";
